Proto ExtensionのJavaScriptをsandboxed pageで実行する
CSP制約を回避するための作戦
https://developer.chrome.com/docs/extensions/mv3/manifest/sandbox/
あらかじめ用意したHTMLを「sandboxed page」として登録しておく
このページをiframe経由で読み込む
すると、CSPが一切適用されない
postMessageは可能なので、完全なsandbox環境が手に入る
ページの内容を読んで書き換えるようなUserScriptは書けなくなる?
画面上にiframeを固定したりすることはおそらく可能
DOMの内容を読んで渡すとかも可能
あとはインターフェースをどうするか
このsandboxed pageをどうやって閲覧しているページに埋め込むんだ…?
普通にChromeに拒否されたけど
サンプルを見つけた
https://github.com/GoogleChrome/chrome-extensions-samples/tree/main/apps/samples/sandbox
MV2だし、しかもmainpage.htmlという謎のHTMLにiframeを埋め込んでいる
このmainpage.htmlは、chrome.app.window.create('mainpage.html'として表示している
別のウィンドウを開いている?
ひょっとして閲覧しているページには埋め込めないのではないか…